<!-- HTML header for doxygen 1.8.13-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MTB CAT1 Peripheral driver library: Power Modes</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen_style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><a href="http://www.cypress.com/"><img alt="Logo" src="IFXCYP_one-line.png"/></a></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">MTB CAT1 Peripheral driver library</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__group__syspm__functions__power.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Power Modes<div class="ingroups"><a class="el" href="group__group__syspm.html">SysPm        (System Power Management)</a> &raquo; <a class="el" href="group__group__syspm__functions.html">Functions</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">General Description</h2>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gab09936e85606de476a0c379f9548603f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__syspm__functions__power.html#gab09936e85606de476a0c379f9548603f">Cy_SysPm_CpuEnterSleep</a> (<a class="el" href="group__group__syspm__data__enumerates.html#gaae6a9f528630a2d69bb70b3bced1f0ac">cy_en_syspm_waitfor_t</a> waitFor)</td></tr>
<tr class="memdesc:gab09936e85606de476a0c379f9548603f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets executing CPU to Sleep mode.  <a href="#gab09936e85606de476a0c379f9548603f">More...</a><br /></td></tr>
<tr class="separator:gab09936e85606de476a0c379f9548603f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5b9413044f40ae96064c575c61d3aa1f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__syspm__functions__power.html#ga5b9413044f40ae96064c575c61d3aa1f">Cy_SysPm_Init</a> (void)</td></tr>
<tr class="memdesc:ga5b9413044f40ae96064c575c61d3aa1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes SysPm Driver.  <a href="#ga5b9413044f40ae96064c575c61d3aa1f">More...</a><br /></td></tr>
<tr class="separator:ga5b9413044f40ae96064c575c61d3aa1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga457b565bd799fb951a2808d7bb2479e0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__syspm__functions__power.html#ga457b565bd799fb951a2808d7bb2479e0">Cy_SysPm_IsLpmReady</a> (void)</td></tr>
<tr class="memdesc:ga457b565bd799fb951a2808d7bb2479e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if the system is LPM ready.  <a href="#ga457b565bd799fb951a2808d7bb2479e0">More...</a><br /></td></tr>
<tr class="separator:ga457b565bd799fb951a2808d7bb2479e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae5b8fe608ae9052382b242d29d34d4b9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__syspm__functions__power.html#gae5b8fe608ae9052382b242d29d34d4b9">Cy_SysPm_SystemLpActiveEnter</a> (void)</td></tr>
<tr class="memdesc:gae5b8fe608ae9052382b242d29d34d4b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Change the system from ACTIVE Profile to LPACTIVE (Low Power Active)/LPSLEEP (Low Power Sleep) Profile.  <a href="#gae5b8fe608ae9052382b242d29d34d4b9">More...</a><br /></td></tr>
<tr class="separator:gae5b8fe608ae9052382b242d29d34d4b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga81d08ce12e3dd770c48e8bc23246c18f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__syspm__functions__power.html#ga81d08ce12e3dd770c48e8bc23246c18f">Cy_SysPm_SystemLpActiveExit</a> (void)</td></tr>
<tr class="memdesc:ga81d08ce12e3dd770c48e8bc23246c18f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the system from LPACTIVE (Low Power Active)/LPSLEEP (Low Power Sleep) Profile to ACTIVE Profile.  <a href="#ga81d08ce12e3dd770c48e8bc23246c18f">More...</a><br /></td></tr>
<tr class="separator:ga81d08ce12e3dd770c48e8bc23246c18f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaedd38e42919449afe22a9e1dc2c6cac7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__syspm__functions__power.html#gaedd38e42919449afe22a9e1dc2c6cac7">Cy_SysPm_IsSystemLpActiveEnabled</a> (void)</td></tr>
<tr class="memdesc:gaedd38e42919449afe22a9e1dc2c6cac7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if the system is in LPACTIVE (Low Power Active)/LPSLEEP (Low Power Sleep) Profile.  <a href="#gaedd38e42919449afe22a9e1dc2c6cac7">More...</a><br /></td></tr>
<tr class="separator:gaedd38e42919449afe22a9e1dc2c6cac7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga52a28b719c2eb4486a6444eb3932fcae"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__syspm__functions__power.html#ga52a28b719c2eb4486a6444eb3932fcae">Cy_SysPm_StoreDSContext_Wfi</a> (void)</td></tr>
<tr class="memdesc:ga52a28b719c2eb4486a6444eb3932fcae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow users to implement any context store required before entering deep sleep in RTOS based builds, It is defined weak to allow callers override the default PDL implementation.  <a href="#ga52a28b719c2eb4486a6444eb3932fcae">More...</a><br /></td></tr>
<tr class="separator:ga52a28b719c2eb4486a6444eb3932fcae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaff87adb57f74191a344e996517bd74b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__syspm__functions__power.html#gaaff87adb57f74191a344e996517bd74b">Cy_SysPm_SetDeepSleepMode</a> (<a class="el" href="group__group__syspm__data__enumerates.html#gaeaedd0dc630a29f06d1ad3a5fbf77894">cy_en_syspm_deep_sleep_mode_t</a> deepSleepMode)</td></tr>
<tr class="memdesc:gaaff87adb57f74191a344e996517bd74b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the deepsleep mode - deepsleep or deepsleep-ram or deepsleep-off.  <a href="#gaaff87adb57f74191a344e996517bd74b">More...</a><br /></td></tr>
<tr class="separator:gaaff87adb57f74191a344e996517bd74b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga32b4d52191d6bd433a43e17f7b795c58"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__syspm__functions__power.html#ga32b4d52191d6bd433a43e17f7b795c58">Cy_SysPm_SetSysDeepSleepMode</a> (<a class="el" href="group__group__syspm__data__enumerates.html#gaeaedd0dc630a29f06d1ad3a5fbf77894">cy_en_syspm_deep_sleep_mode_t</a> deepSleepMode)</td></tr>
<tr class="memdesc:ga32b4d52191d6bd433a43e17f7b795c58"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the deepsleep mode for SYS PPU Group- deepsleep or deepsleep-ram or deepsleep-off.  <a href="#ga32b4d52191d6bd433a43e17f7b795c58">More...</a><br /></td></tr>
<tr class="separator:ga32b4d52191d6bd433a43e17f7b795c58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5bf456009a867946d735f682724d9aa6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__syspm__functions__power.html#ga5bf456009a867946d735f682724d9aa6">Cy_SysPm_SetAppDeepSleepMode</a> (<a class="el" href="group__group__syspm__data__enumerates.html#gaeaedd0dc630a29f06d1ad3a5fbf77894">cy_en_syspm_deep_sleep_mode_t</a> deepSleepMode)</td></tr>
<tr class="memdesc:ga5bf456009a867946d735f682724d9aa6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the deepsleep mode for APP PPU Group- deepsleep or deepsleep-ram or deepsleep-off.  <a href="#ga5bf456009a867946d735f682724d9aa6">More...</a><br /></td></tr>
<tr class="separator:ga5bf456009a867946d735f682724d9aa6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac12a8c9beadb3f89bd94c0dd685d8618"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__syspm__data__enumerates.html#gaeaedd0dc630a29f06d1ad3a5fbf77894">cy_en_syspm_deep_sleep_mode_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__syspm__functions__power.html#gac12a8c9beadb3f89bd94c0dd685d8618">Cy_SysPm_GetSysDeepSleepMode</a> (void)</td></tr>
<tr class="memdesc:gac12a8c9beadb3f89bd94c0dd685d8618"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the SYS Power domain deepsleep mode - deepsleep or deepsleep-ram or deepsleep-off.  <a href="#gac12a8c9beadb3f89bd94c0dd685d8618">More...</a><br /></td></tr>
<tr class="separator:gac12a8c9beadb3f89bd94c0dd685d8618"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacd87074744e56570171503804eb4d081"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__syspm__data__enumerates.html#gaeaedd0dc630a29f06d1ad3a5fbf77894">cy_en_syspm_deep_sleep_mode_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__syspm__functions__power.html#gacd87074744e56570171503804eb4d081">Cy_SysPm_GetAppDeepSleepMode</a> (void)</td></tr>
<tr class="memdesc:gacd87074744e56570171503804eb4d081"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the APP Power domain deepsleep mode - deepsleep or deepsleep-ram or deepsleep-off.  <a href="#gacd87074744e56570171503804eb4d081">More...</a><br /></td></tr>
<tr class="separator:gacd87074744e56570171503804eb4d081"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1ca726f9dd9148265903d74f84998c6a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__syspm__functions__power.html#ga1ca726f9dd9148265903d74f84998c6a">Cy_SysPm_SetSOCMEMDeepSleepMode</a> (<a class="el" href="group__group__syspm__data__enumerates.html#gaeaedd0dc630a29f06d1ad3a5fbf77894">cy_en_syspm_deep_sleep_mode_t</a> deepSleepMode)</td></tr>
<tr class="memdesc:ga1ca726f9dd9148265903d74f84998c6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the deepsleep mode for SOCMEM PPU - deepsleep or deepsleep-ram or deepsleep-off.  <a href="#ga1ca726f9dd9148265903d74f84998c6a">More...</a><br /></td></tr>
<tr class="separator:ga1ca726f9dd9148265903d74f84998c6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga147ce56f8ab7be2c4af0b9fb95a04221"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__syspm__functions__power.html#ga147ce56f8ab7be2c4af0b9fb95a04221">Cy_SysPm_SetPPUDeepSleepMode</a> (uint32_t ppu, uint32_t <a class="el" href="group__group__ipc__bt__data__structures.html#ga37e90f5e3bd99fac2021fb3a326607d4">mode</a>)</td></tr>
<tr class="memdesc:ga147ce56f8ab7be2c4af0b9fb95a04221"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the deep sleep mode for a particular PPU - ON, FULL_RET, MEM_RET, OFF.  <a href="#ga147ce56f8ab7be2c4af0b9fb95a04221">More...</a><br /></td></tr>
<tr class="separator:ga147ce56f8ab7be2c4af0b9fb95a04221"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac80d11f681b462a49a88e3fb90cbfb9a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__syspm__data__enumerates.html#gaeaedd0dc630a29f06d1ad3a5fbf77894">cy_en_syspm_deep_sleep_mode_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__syspm__functions__power.html#gac80d11f681b462a49a88e3fb90cbfb9a">Cy_SysPm_GetDeepSleepMode</a> (void)</td></tr>
<tr class="memdesc:gac80d11f681b462a49a88e3fb90cbfb9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the overall system's deepsleep mode - deepsleep or deepsleep-ram or deepsleep-off.  <a href="#gac80d11f681b462a49a88e3fb90cbfb9a">More...</a><br /></td></tr>
<tr class="separator:gac80d11f681b462a49a88e3fb90cbfb9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga50b3751b0c4bc09d0385b27f95a99a39"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__syspm__data__enumerates.html#ga95b0ac3e7542c6032c240b62379bc728">cy_en_syspm_boot_mode_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__syspm__functions__power.html#ga50b3751b0c4bc09d0385b27f95a99a39">Cy_SysPm_GetBootMode</a> (void)</td></tr>
<tr class="memdesc:ga50b3751b0c4bc09d0385b27f95a99a39"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks from which Deep Sleep mode the system has woke up.  <a href="#ga50b3751b0c4bc09d0385b27f95a99a39">More...</a><br /></td></tr>
<tr class="separator:ga50b3751b0c4bc09d0385b27f95a99a39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7b9be88cbcc9d3b140c402a6feff20fe"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__syspm__functions__power.html#ga7b9be88cbcc9d3b140c402a6feff20fe">Cy_SysPm_TriggerSoftReset</a> (void)</td></tr>
<tr class="memdesc:ga7b9be88cbcc9d3b140c402a6feff20fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Triggers the System Soft reset.  <a href="#ga7b9be88cbcc9d3b140c402a6feff20fe">More...</a><br /></td></tr>
<tr class="separator:ga7b9be88cbcc9d3b140c402a6feff20fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac1b5589eaaa7ac4fda44b666cc0ff22c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__syspm__functions__power.html#gac1b5589eaaa7ac4fda44b666cc0ff22c">Cy_SysPm_TriggerXRes</a> (void)</td></tr>
<tr class="memdesc:gac1b5589eaaa7ac4fda44b666cc0ff22c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Triggers the XRES reset.  <a href="#gac1b5589eaaa7ac4fda44b666cc0ff22c">More...</a><br /></td></tr>
<tr class="separator:gac1b5589eaaa7ac4fda44b666cc0ff22c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5150c28fe4d2626720c1fbf74b3111ca"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__syspm__functions__power.html#ga5150c28fe4d2626720c1fbf74b3111ca">Cy_SysPm_CpuEnterDeepSleep</a> (<a class="el" href="group__group__syspm__data__enumerates.html#gaae6a9f528630a2d69bb70b3bced1f0ac">cy_en_syspm_waitfor_t</a> waitFor)</td></tr>
<tr class="memdesc:ga5150c28fe4d2626720c1fbf74b3111ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets executing CPU to the Deep Sleep mode.  <a href="#ga5150c28fe4d2626720c1fbf74b3111ca">More...</a><br /></td></tr>
<tr class="separator:ga5150c28fe4d2626720c1fbf74b3111ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga72531fcca015df727a163b510639a334"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__syspm__functions__power.html#ga72531fcca015df727a163b510639a334">Cy_SysPm_SystemEnterLp</a> (void)</td></tr>
<tr class="memdesc:ga72531fcca015df727a163b510639a334"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets device into system Low Power mode.  <a href="#ga72531fcca015df727a163b510639a334">More...</a><br /></td></tr>
<tr class="separator:ga72531fcca015df727a163b510639a334"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaca7c8f1ab6d555530a68978269198836"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__syspm__functions__power.html#gaca7c8f1ab6d555530a68978269198836">Cy_SysPm_SystemEnterUlp</a> (void)</td></tr>
<tr class="memdesc:gaca7c8f1ab6d555530a68978269198836"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets device into system Ultra Low Power mode.  <a href="#gaca7c8f1ab6d555530a68978269198836">More...</a><br /></td></tr>
<tr class="separator:gaca7c8f1ab6d555530a68978269198836"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae97647a28c370674ba57d451d21d1c51"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__syspm__functions__power.html#gae97647a28c370674ba57d451d21d1c51">Cy_SysPm_SystemEnterHibernate</a> (void)</td></tr>
<tr class="memdesc:gae97647a28c370674ba57d451d21d1c51"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the device into system Hibernate mode.  <a href="#gae97647a28c370674ba57d451d21d1c51">More...</a><br /></td></tr>
<tr class="separator:gae97647a28c370674ba57d451d21d1c51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2540970e6c27efa25752efc43da0d622"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__syspm__functions__power.html#ga2540970e6c27efa25752efc43da0d622">Cy_SysPm_SetHibernateWakeupSource</a> (uint32_t wakeupSource)</td></tr>
<tr class="memdesc:ga2540970e6c27efa25752efc43da0d622"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function configures sources to wake up the device from the system Hibernate power mode.  <a href="#ga2540970e6c27efa25752efc43da0d622">More...</a><br /></td></tr>
<tr class="separator:ga2540970e6c27efa25752efc43da0d622"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5cb3a837b9c441f4806c7550e6a0b026"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__syspm__functions__power.html#ga5cb3a837b9c441f4806c7550e6a0b026">Cy_SysPm_ClearHibernateWakeupSource</a> (uint32_t wakeupSource)</td></tr>
<tr class="memdesc:ga5cb3a837b9c441f4806c7550e6a0b026"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function disables a wakeup source that was previously configured to wake up the device from the system Hibernate mode.  <a href="#ga5cb3a837b9c441f4806c7550e6a0b026">More...</a><br /></td></tr>
<tr class="separator:ga5cb3a837b9c441f4806c7550e6a0b026"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafc7877f22758499d5d199401cd60f28f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__syspm__data__enumerates.html#ga369b76c2e602edf09ede9f8f804e066e">cy_en_syspm_hibernate_wakeup_source_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__syspm__functions__power.html#gafc7877f22758499d5d199401cd60f28f">Cy_SysPm_GetHibernateWakeupCause</a> (void)</td></tr>
<tr class="memdesc:gafc7877f22758499d5d199401cd60f28f"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function gets the wakeup cause for Hibernate mode.  <a href="#gafc7877f22758499d5d199401cd60f28f">More...</a><br /></td></tr>
<tr class="separator:gafc7877f22758499d5d199401cd60f28f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5e114fa9274e2cb4073ed5cf837d780c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__syspm__functions__power.html#ga5e114fa9274e2cb4073ed5cf837d780c">Cy_SysPm_ClearHibernateWakeupCause</a> (void)</td></tr>
<tr class="memdesc:ga5e114fa9274e2cb4073ed5cf837d780c"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function Clears the wakeup cause register.  <a href="#ga5e114fa9274e2cb4073ed5cf837d780c">More...</a><br /></td></tr>
<tr class="separator:ga5e114fa9274e2cb4073ed5cf837d780c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3bde7056544d0ada3da80a0f58fefab9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__syspm__functions__power.html#ga3bde7056544d0ada3da80a0f58fefab9">Cy_SysPm_SystemSetMinRegulatorCurrent</a> (void)</td></tr>
<tr class="memdesc:ga3bde7056544d0ada3da80a0f58fefab9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the system into minimum core regulator current mode.  <a href="#ga3bde7056544d0ada3da80a0f58fefab9">More...</a><br /></td></tr>
<tr class="separator:ga3bde7056544d0ada3da80a0f58fefab9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga54112d6ea4d40ad241923ee7068f5363"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__syspm__functions__power.html#ga54112d6ea4d40ad241923ee7068f5363">Cy_SysPm_SystemSetNormalRegulatorCurrent</a> (void)</td></tr>
<tr class="memdesc:ga54112d6ea4d40ad241923ee7068f5363"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the system to normal regulator current mode.  <a href="#ga54112d6ea4d40ad241923ee7068f5363">More...</a><br /></td></tr>
<tr class="separator:ga54112d6ea4d40ad241923ee7068f5363"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7c50f7236c3a6a7b75a7d915f8ebb089"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__syspm__functions__power.html#ga7c50f7236c3a6a7b75a7d915f8ebb089">Cy_SysPm_CpuSleepOnExit</a> (bool enable)</td></tr>
<tr class="memdesc:ga7c50f7236c3a6a7b75a7d915f8ebb089"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function configures the sleep-on-exit feature of the CPU.  <a href="#ga7c50f7236c3a6a7b75a7d915f8ebb089">More...</a><br /></td></tr>
<tr class="separator:ga7c50f7236c3a6a7b75a7d915f8ebb089"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabd844e62e992040d43b3b692b7718c77"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__syspm__functions__power.html#gabd844e62e992040d43b3b692b7718c77">Cy_SysPm_CpuSendWakeupEvent</a> (void)</td></tr>
<tr class="memdesc:gabd844e62e992040d43b3b692b7718c77"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends the SEV (Send Event) ARM instruction to the system.  <a href="#gabd844e62e992040d43b3b692b7718c77">More...</a><br /></td></tr>
<tr class="separator:gabd844e62e992040d43b3b692b7718c77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga945ba75666ab90b16c66128853ffa820"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__syspm__functions__power.html#ga945ba75666ab90b16c66128853ffa820">Cy_SysPm_SystemIsMinRegulatorCurrentSet</a> (void)</td></tr>
<tr class="memdesc:ga945ba75666ab90b16c66128853ffa820"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether the system regulator is set to minimal current mode.  <a href="#ga945ba75666ab90b16c66128853ffa820">More...</a><br /></td></tr>
<tr class="separator:ga945ba75666ab90b16c66128853ffa820"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a id="gab09936e85606de476a0c379f9548603f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab09936e85606de476a0c379f9548603f">&#9670;&nbsp;</a></span>Cy_SysPm_CpuEnterSleep()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a> Cy_SysPm_CpuEnterSleep </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__syspm__data__enumerates.html#gaae6a9f528630a2d69bb70b3bced1f0ac">cy_en_syspm_waitfor_t</a>&#160;</td>
          <td class="paramname"><em>waitFor</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets executing CPU to Sleep mode. </p>
<p>Puts the CPU executing this function into CPU Sleep power mode. If callback functions were registered they are also executed.</p>
<p>For more detail about switching into CPU Sleep power mode and debug, refer to the device technical reference manual (TRM).</p>
<p>If at least one callback function with the CY_SYSPM_SLEEP type was registered, the following algorithm is executed: Prior to entering CPU Sleep mode, all callback functions of the CY_SYSPM_SLEEP type with the CY_SYSPM_CHECK_READY parameter are called. This allows the driver to signal whether it is ready to enter the low power mode. If any of the callbacks of the CY_SYSPM_SLEEP type with the CY_SYSPM_CHECK_READY parameter returns CY_SYSPM_FAIL, the remaining callbacks of the CY_SYSPM_SLEEP type with the CY_SYSPM_CHECK_READY parameter are skipped. After the first CY_SYSPM_FAIL, all the CY_SYSPM_SLEEP callbacks that were previously executed before getting the CY_SYSPM_CHECK_FAIL are executed with the CY_SYSPM_CHECK_FAIL parameter. The CPU Sleep mode is not entered and the <a class="el" href="group__group__syspm__functions__power.html#gab09936e85606de476a0c379f9548603f" title="Sets executing CPU to Sleep mode. ">Cy_SysPm_CpuEnterSleep()</a> function returns CY_SYSPM_FAIL.</p>
<p>If all of the callbacks of the CY_SYSPM_SLEEP type with the CY_SYSPM_CHECK_READY parameter return CY_SYSPM_SUCCESS, then all callbacks of the CY_SYSPM_SLEEP type with the CY_SYSPM_CHECK_FAIL parameters calls are skipped. All callbacks of the CY_SYSPM_SLEEP type and then CY_SYSPM_BEFORE_TRANSITION parameter calls are executed, allowing the peripherals to prepare for CPU Sleep. The CPU then enters Sleep mode. This is a CPU-centric power mode. This means that the CPU has entered Sleep mode and its main clock is removed. Any enabled interrupt can cause a CPU wakeup from Sleep mode.</p>
<p>For multi-core devices, CPU wakeup can also be performed using the Send Event (SEV) assembly instruction executed from the other active CPU. Such wakeup is expected only if the CPU Sleep power mode is done with WFE assembly instruction.</p>
<p>After a wakeup from CPU Sleep, all of the registered callbacks of the CY_SYSPM_SLEEP type and with the CY_SYSPM_AFTER_TRANSITION parameter are executed to return the peripherals to CPU active operation. The <a class="el" href="group__group__syspm__functions__power.html#gab09936e85606de476a0c379f9548603f" title="Sets executing CPU to Sleep mode. ">Cy_SysPm_CpuEnterSleep()</a> function returns CY_SYSPM_SUCCESS. No callbacks of the CY_SYSPM_SLEEP type with the CY_SYSPM_BEFORE_TRANSITION parameter or callbacks of the CY_SYSPM_SLEEP type and CY_SYSPM_AFTER_TRANSITION parameter callbacks are executed if CPU Sleep mode is not entered.</p>
<dl class="section note"><dt>Note</dt><dd>The last callback that returns CY_SYSPM_FAIL is not executed with the CY_SYSPM_CHECK_FAIL parameter because of the FAIL. The callback generating CY_SYSPM_FAIL is expected to not make any changes that require being undone.</dd></dl>
<p>To support control of callback execution order the following method is implemented. Callback function with the CY_SYSPM_CHECK_READY and CY_SYSPM_BEFORE_TRANSITION parameter are executed in the same order they are registered. Callback function with the CY_SYSPM_CHECK_FAIL and CY_SYSPM_AFTER_TRANSITION parameter are executed in the reverse order they are registered.</p>
<p>The return value from executed callback functions with the CY_SYSPM_CHECK_FAIL, CY_SYSPM_BEFORE_TRANSITION, and CY_SYSPM_AFTER_TRANSITION modes are ignored.</p>
<p><a class="el" href="group__group__syspm__data__enumerates.html#gae06cd8869fe61d709ad6145ca9f3cd63">cy_en_syspm_callback_mode_t</a>, except the CY_SYSPM_CHECK_READY, are ignored</p>
<dl class="section note"><dt>Note</dt><dd>The Arm BSD assembly instruction is not required in this function because the function implementation ensures the SLEEPDEEP bit of SCS register is settled prior executing WFI/WFE instruction.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">waitFor</td><td>Selects wait for action. See <a class="el" href="group__group__syspm__data__enumerates.html#gaae6a9f528630a2d69bb70b3bced1f0ac">cy_en_syspm_waitfor_t</a>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Entered status, see <a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a>.</dd></dl>
<dl class="section user"><dt>Side Effects</dt><dd>For CY8C6xx6, CY8C6xx7 devices this function clears the Event Register of the CM4 CPU after wakeup from WFE.</dd></dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line">    <span class="comment">/* Scenario: There is a need to put the CPU into Sleep mode */</span></div><div class="line">    <span class="comment">/* Prepare the system for CPU Sleep power mode here */</span></div><div class="line">    <span class="keywordflow">if</span>(<a class="code" href="group__group__syspm__data__enumerates.html#gga601b1cb722cb091133caf33d8ab235caaf00d22f1ee891a8a56f8bbf58132e775">CY_SYSPM_SUCCESS</a> != <a class="code" href="group__group__syspm__functions__power.html#gab09936e85606de476a0c379f9548603f">Cy_SysPm_CpuEnterSleep</a>(<a class="code" href="group__group__syspm__data__enumerates.html#ggaae6a9f528630a2d69bb70b3bced1f0acadf47e50b6700c08b6f9e7e70bb525541">CY_SYSPM_WAIT_FOR_INTERRUPT</a>))</div><div class="line">    {</div><div class="line">        <span class="comment">/* The CPU Sleep mode was not entered because a registered </span></div><div class="line"><span class="comment">        *  Sleep &quot;check ready&quot; callback returned a &quot;not success&quot; status</span></div><div class="line"><span class="comment">        */</span></div><div class="line">    }</div><div class="line">    <span class="keywordflow">else</span></div><div class="line">    {</div><div class="line">        <span class="comment">/* If the program has reached here, the CPU has just woken up</span></div><div class="line"><span class="comment">         * from the CPU Sleep mode</span></div><div class="line"><span class="comment">         */</span></div><div class="line">    }</div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="ga5b9413044f40ae96064c575c61d3aa1f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5b9413044f40ae96064c575c61d3aa1f">&#9670;&nbsp;</a></span>Cy_SysPm_Init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Cy_SysPm_Init </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initializes SysPm Driver. </p>
<dl class="section note"><dt>Note</dt><dd>This API is available for CAT1B devices. </dd></dl>

</div>
</div>
<a id="ga457b565bd799fb951a2808d7bb2479e0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga457b565bd799fb951a2808d7bb2479e0">&#9670;&nbsp;</a></span>Cy_SysPm_IsLpmReady()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Cy_SysPm_IsLpmReady </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Checks if the system is LPM ready. </p>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>True if the system is LPM Ready.</li>
<li>False if the system is not LPM Ready.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is available for CAT1D devices. </dd></dl>

</div>
</div>
<a id="gae5b8fe608ae9052382b242d29d34d4b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae5b8fe608ae9052382b242d29d34d4b9">&#9670;&nbsp;</a></span>Cy_SysPm_SystemLpActiveEnter()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a> Cy_SysPm_SystemLpActiveEnter </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Change the system from ACTIVE Profile to LPACTIVE (Low Power Active)/LPSLEEP (Low Power Sleep) Profile. </p>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>CY_SYSPM_SUCCESS - Entered the system Low Power mode or the device is already in Low Power mode.</li>
<li>CY_SYSPM_INVALID_STATE - The system Low Power mode was not set. The system Low Power mode was not set because the protection context value is higher than zero (PC &gt; 0) or the device revision does not support modifying registers (to enter LP mode) via syscall.</li>
<li>CY_SYSPM_CANCELED - Operation was canceled. Call the function again until the function returns CY_SYSPM_SUCCESS.</li>
<li>CY_SYSPM_FAIL - The system Low Power mode is not entered.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is available for CAT1B and CAT1C devices. </dd></dl>

</div>
</div>
<a id="ga81d08ce12e3dd770c48e8bc23246c18f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga81d08ce12e3dd770c48e8bc23246c18f">&#9670;&nbsp;</a></span>Cy_SysPm_SystemLpActiveExit()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a> Cy_SysPm_SystemLpActiveExit </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Changes the system from LPACTIVE (Low Power Active)/LPSLEEP (Low Power Sleep) Profile to ACTIVE Profile. </p>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>CY_SYSPM_SUCCESS - Entered the system Low Power mode or the device is already in Low Power mode.</li>
<li>CY_SYSPM_INVALID_STATE - The system Low Power mode was not set. The system Low Power mode was not set because the protection context value is higher than zero (PC &gt; 0) or the device revision does not support modifying registers (to enter LP mode) via syscall.</li>
<li>CY_SYSPM_CANCELED - Operation was canceled. Call the function again until the function returns CY_SYSPM_SUCCESS.</li>
<li>CY_SYSPM_FAIL - The system Low Power mode is not entered.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is available for CAT1B and CAT1C devices. </dd></dl>

</div>
</div>
<a id="gaedd38e42919449afe22a9e1dc2c6cac7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaedd38e42919449afe22a9e1dc2c6cac7">&#9670;&nbsp;</a></span>Cy_SysPm_IsSystemLpActiveEnabled()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Cy_SysPm_IsSystemLpActiveEnabled </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Checks if the system is in LPACTIVE (Low Power Active)/LPSLEEP (Low Power Sleep) Profile. </p>
<dl class="section return"><dt>Returns</dt><dd>True if enabled, False if disabled.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is available for CAT1B and CAT1C devices. </dd></dl>

</div>
</div>
<a id="ga52a28b719c2eb4486a6444eb3932fcae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga52a28b719c2eb4486a6444eb3932fcae">&#9670;&nbsp;</a></span>Cy_SysPm_StoreDSContext_Wfi()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Cy_SysPm_StoreDSContext_Wfi </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Allow users to implement any context store required before entering deep sleep in RTOS based builds, It is defined weak to allow callers override the default PDL implementation. </p>
<dl class="section note"><dt>Note</dt><dd>This API is available for CAT1B devices. </dd></dl>

</div>
</div>
<a id="gaaff87adb57f74191a344e996517bd74b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaaff87adb57f74191a344e996517bd74b">&#9670;&nbsp;</a></span>Cy_SysPm_SetDeepSleepMode()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a> Cy_SysPm_SetDeepSleepMode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__syspm__data__enumerates.html#gaeaedd0dc630a29f06d1ad3a5fbf77894">cy_en_syspm_deep_sleep_mode_t</a>&#160;</td>
          <td class="paramname"><em>deepSleepMode</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the deepsleep mode - deepsleep or deepsleep-ram or deepsleep-off. </p>
<dl class="section note"><dt>Note</dt><dd>If mode is set to CY_SYSPM_MODE_DEEPSLEEP_RAM &amp;&amp; Application in Flash, user needs to take care of below</dd></dl>
<p>Two types of images need to be generated</p><ol type="1">
<li>Flash image<ul>
<li>Contains the actual application.</li>
</ul>
</li>
<li>RAM Image(Resides in RAM)<ul>
<li>Contains Warmboot Entry Point function.</li>
<li>SMIF initialization is performed only during coldboot, and not in warmboot, so RAM Image will have the code performing SMIF initialization before jumping to Flash Image.</li>
</ul>
</li>
</ol>
<p>Before entering CY_SYSPM_MODE_DEEPSLEEP_RAM, user need to take care of below</p><ol type="1">
<li>Entry point<ul>
<li>Set entry point to a function located in RAM Image using</li>
<li>Cy_Syslib_SetWarmBootEntryPoint(Syslib Driver)</li>
</ul>
</li>
</ol>
<p>After waking up from CY_SYSPM_MODE_DEEPSLEEP_RAM, bootrom jumps to entry point function located in RAM image code. Entry point function should take care of below</p>
<ol type="1">
<li>Vector table and Peripheral IP's enabling<ul>
<li>Set VTOR register with vector table address.</li>
<li>Enable all the peripheral IP's using <a class="el" href="group__group__sysclk__clk__peripheral__group__funcs.html#ga237e467239332fcbba83e7b8c1dbfe8a">Cy_SysClk_PeriGroupSetSlaveCtl</a>.</li>
</ul>
</li>
<li>SMIF Initialization<ul>
<li>Perform SMIF Initialization.</li>
</ul>
</li>
<li>Jump to API in the Flash.</li>
</ol>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">deepSleepMode</td><td>CY_SYSPM_MODE_DEEPSLEEP or CY_SYSPM_MODE_DEEPSLEEP_RAM or CY_SYSPM_MODE_DEEPSLEEP_OFF</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>CY_SYSPM_SUCCESS - Deep sleep mode is set</li>
<li>CY_SYSPM_CANCELED - Operation was canceled. Call the function again until the function returns CY_SYSPM_SUCCESS.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is available for CAT1B and CAT1D devices. </dd></dl>

</div>
</div>
<a id="ga32b4d52191d6bd433a43e17f7b795c58"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga32b4d52191d6bd433a43e17f7b795c58">&#9670;&nbsp;</a></span>Cy_SysPm_SetSysDeepSleepMode()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a> Cy_SysPm_SetSysDeepSleepMode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__syspm__data__enumerates.html#gaeaedd0dc630a29f06d1ad3a5fbf77894">cy_en_syspm_deep_sleep_mode_t</a>&#160;</td>
          <td class="paramname"><em>deepSleepMode</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the deepsleep mode for SYS PPU Group- deepsleep or deepsleep-ram or deepsleep-off. </p>
<dl class="section note"><dt>Note</dt><dd>If mode is set to CY_SYSPM_MODE_DEEPSLEEP_RAM &amp;&amp; Application in Flash, user needs to take care of below</dd></dl>
<p>Two types of images need to be generated</p><ol type="1">
<li>Flash image<ul>
<li>Contains the actual application.</li>
</ul>
</li>
<li>RAM Image(Resides in RAM)<ul>
<li>Contains Warmboot Entry Point function.</li>
<li>SMIF initialization is performed only during coldboot, and not in warmboot, so RAM Image will have the code performing SMIF initialization before jumping to Flash Image.</li>
</ul>
</li>
</ol>
<p>Before entering CY_SYSPM_MODE_DEEPSLEEP_RAM, user need to take care of below</p><ol type="1">
<li>Entry point<ul>
<li>Set entry point to a function located in RAM Image using</li>
<li>Cy_Syslib_SetWarmBootEntryPoint(Syslib Driver)</li>
</ul>
</li>
</ol>
<p>After waking up from CY_SYSPM_MODE_DEEPSLEEP_RAM, bootrom jumps to entry point function located in RAM image code. Entry point function should take care of below</p>
<ol type="1">
<li>Vector table and Peripheral IP's enabling<ul>
<li>Set VTOR register with vector table address.</li>
<li>Enable all the peripheral IP's using <a class="el" href="group__group__sysclk__clk__peripheral__group__funcs.html#ga237e467239332fcbba83e7b8c1dbfe8a">Cy_SysClk_PeriGroupSetSlaveCtl</a>.</li>
</ul>
</li>
<li>SMIF Initialization<ul>
<li>Perform SMIF Initialization.</li>
</ul>
</li>
<li>Jump to API in the Flash.</li>
</ol>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">deepSleepMode</td><td>CY_SYSPM_MODE_DEEPSLEEP or CY_SYSPM_MODE_DEEPSLEEP_RAM or CY_SYSPM_MODE_DEEPSLEEP_OFF</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>CY_SYSPM_SUCCESS - Deep sleep mode is set</li>
<li>CY_SYSPM_CANCELED - Operation was canceled. Call the function again until the function returns CY_SYSPM_SUCCESS.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is available for CAT1D devices. </dd></dl>

</div>
</div>
<a id="ga5bf456009a867946d735f682724d9aa6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5bf456009a867946d735f682724d9aa6">&#9670;&nbsp;</a></span>Cy_SysPm_SetAppDeepSleepMode()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a> Cy_SysPm_SetAppDeepSleepMode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__syspm__data__enumerates.html#gaeaedd0dc630a29f06d1ad3a5fbf77894">cy_en_syspm_deep_sleep_mode_t</a>&#160;</td>
          <td class="paramname"><em>deepSleepMode</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the deepsleep mode for APP PPU Group- deepsleep or deepsleep-ram or deepsleep-off. </p>
<dl class="section note"><dt>Note</dt><dd>If mode is set to CY_SYSPM_MODE_DEEPSLEEP_RAM &amp;&amp; Application in Flash, user needs to take care of below</dd></dl>
<p>Two types of images need to be generated</p><ol type="1">
<li>Flash image<ul>
<li>Contains the actual application.</li>
</ul>
</li>
<li>RAM Image(Resides in RAM)<ul>
<li>Contains Warmboot Entry Point function.</li>
<li>SMIF initialization is performed only during coldboot, and not in warmboot, so RAM Image will have the code performing SMIF initialization before jumping to Flash Image.</li>
</ul>
</li>
</ol>
<p>Before entering CY_SYSPM_MODE_DEEPSLEEP_RAM, user need to take care of below</p><ol type="1">
<li>Entry point<ul>
<li>Set entry point to a function located in RAM Image using</li>
<li>Cy_Syslib_SetWarmBootEntryPoint(Syslib Driver)</li>
</ul>
</li>
</ol>
<p>After waking up from CY_SYSPM_MODE_DEEPSLEEP_RAM, bootrom jumps to entry point function located in RAM image code. Entry point function should take care of below</p>
<ol type="1">
<li>Vector table and Peripheral IP's enabling<ul>
<li>Set VTOR register with vector table address.</li>
<li>Enable all the peripheral IP's using <a class="el" href="group__group__sysclk__clk__peripheral__group__funcs.html#ga237e467239332fcbba83e7b8c1dbfe8a">Cy_SysClk_PeriGroupSetSlaveCtl</a>.</li>
</ul>
</li>
<li>SMIF Initialization<ul>
<li>Perform SMIF Initialization.</li>
</ul>
</li>
<li>Jump to API in the Flash.</li>
</ol>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">deepSleepMode</td><td>CY_SYSPM_MODE_DEEPSLEEP or CY_SYSPM_MODE_DEEPSLEEP_RAM or CY_SYSPM_MODE_DEEPSLEEP_OFF</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>CY_SYSPM_SUCCESS - Deep sleep mode is set</li>
<li>CY_SYSPM_CANCELED - Operation was canceled. Call the function again until the function returns CY_SYSPM_SUCCESS.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is available for CAT1D devices. </dd></dl>

</div>
</div>
<a id="gac12a8c9beadb3f89bd94c0dd685d8618"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac12a8c9beadb3f89bd94c0dd685d8618">&#9670;&nbsp;</a></span>Cy_SysPm_GetSysDeepSleepMode()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__syspm__data__enumerates.html#gaeaedd0dc630a29f06d1ad3a5fbf77894">cy_en_syspm_deep_sleep_mode_t</a> Cy_SysPm_GetSysDeepSleepMode </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the SYS Power domain deepsleep mode - deepsleep or deepsleep-ram or deepsleep-off. </p>
<dl class="section return"><dt>Returns</dt><dd>Returns <a class="el" href="group__group__syspm__data__enumerates.html#gaeaedd0dc630a29f06d1ad3a5fbf77894">cy_en_syspm_deep_sleep_mode_t</a></dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is available only for CAT1D devices. </dd></dl>

</div>
</div>
<a id="gacd87074744e56570171503804eb4d081"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacd87074744e56570171503804eb4d081">&#9670;&nbsp;</a></span>Cy_SysPm_GetAppDeepSleepMode()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__syspm__data__enumerates.html#gaeaedd0dc630a29f06d1ad3a5fbf77894">cy_en_syspm_deep_sleep_mode_t</a> Cy_SysPm_GetAppDeepSleepMode </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the APP Power domain deepsleep mode - deepsleep or deepsleep-ram or deepsleep-off. </p>
<dl class="section return"><dt>Returns</dt><dd>Returns <a class="el" href="group__group__syspm__data__enumerates.html#gaeaedd0dc630a29f06d1ad3a5fbf77894">cy_en_syspm_deep_sleep_mode_t</a></dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is available only for CAT1D devices. </dd></dl>

</div>
</div>
<a id="ga1ca726f9dd9148265903d74f84998c6a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1ca726f9dd9148265903d74f84998c6a">&#9670;&nbsp;</a></span>Cy_SysPm_SetSOCMEMDeepSleepMode()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a> Cy_SysPm_SetSOCMEMDeepSleepMode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__syspm__data__enumerates.html#gaeaedd0dc630a29f06d1ad3a5fbf77894">cy_en_syspm_deep_sleep_mode_t</a>&#160;</td>
          <td class="paramname"><em>deepSleepMode</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the deepsleep mode for SOCMEM PPU - deepsleep or deepsleep-ram or deepsleep-off. </p>
<dl class="section note"><dt>Note</dt><dd>If mode is set to CY_SYSPM_MODE_DEEPSLEEP_RAM &amp;&amp; Application in Flash, user needs to take care of below</dd></dl>
<p>Two types of images need to be generated</p><ol type="1">
<li>Flash image<ul>
<li>Contains the actual application.</li>
</ul>
</li>
<li>RAM Image(Resides in RAM)<ul>
<li>Contains Warmboot Entry Point function.</li>
<li>SMIF initialization is performed only during coldboot, and not in warmboot, so RAM Image will have the code performing SMIF initialization before jumping to Flash Image.</li>
</ul>
</li>
</ol>
<p>Before entering CY_SYSPM_MODE_DEEPSLEEP_RAM, user need to take care of below</p><ol type="1">
<li>Entry point<ul>
<li>Set entry point to a function located in RAM Image using</li>
<li>Cy_Syslib_SetWarmBootEntryPoint(Syslib Driver)</li>
</ul>
</li>
</ol>
<p>After waking up from CY_SYSPM_MODE_DEEPSLEEP_RAM, bootrom jumps to entry point function located in RAM image code. Entry point function should take care of below</p>
<ol type="1">
<li>Vector table and Peripheral IP's enabling<ul>
<li>Set VTOR register with vector table address.</li>
<li>Enable all the peripheral IP's using <a class="el" href="group__group__sysclk__clk__peripheral__group__funcs.html#ga237e467239332fcbba83e7b8c1dbfe8a">Cy_SysClk_PeriGroupSetSlaveCtl</a>.</li>
</ul>
</li>
<li>SMIF Initialization<ul>
<li>Perform SMIF Initialization.</li>
</ul>
</li>
<li>Jump to API in the Flash.</li>
</ol>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">deepSleepMode</td><td>CY_SYSPM_MODE_DEEPSLEEP or CY_SYSPM_MODE_DEEPSLEEP_RAM or CY_SYSPM_MODE_DEEPSLEEP_OFF</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>CY_SYSPM_SUCCESS - Deep sleep mode is set</li>
<li>CY_SYSPM_CANCELED - Operation was canceled. Call the function again until the function returns CY_SYSPM_SUCCESS.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is available for CAT1D devices. </dd></dl>

</div>
</div>
<a id="ga147ce56f8ab7be2c4af0b9fb95a04221"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga147ce56f8ab7be2c4af0b9fb95a04221">&#9670;&nbsp;</a></span>Cy_SysPm_SetPPUDeepSleepMode()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a> Cy_SysPm_SetPPUDeepSleepMode </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>ppu</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>mode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the deep sleep mode for a particular PPU - ON, FULL_RET, MEM_RET, OFF. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ppu</td><td>Base address of the PPU that needs to be configured.</td></tr>
    <tr><td class="paramname">mode</td><td>Deep Sleep mode to be set for the PPU.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>CY_SYSPM_SUCCESS - Deep sleep mode is set</li>
<li>CY_SYSPM_CANCELED - Operation was canceled. Call the function again until the function returns CY_SYSPM_SUCCESS.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is available for CAT1D devices. </dd></dl>

</div>
</div>
<a id="gac80d11f681b462a49a88e3fb90cbfb9a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac80d11f681b462a49a88e3fb90cbfb9a">&#9670;&nbsp;</a></span>Cy_SysPm_GetDeepSleepMode()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__syspm__data__enumerates.html#gaeaedd0dc630a29f06d1ad3a5fbf77894">cy_en_syspm_deep_sleep_mode_t</a> Cy_SysPm_GetDeepSleepMode </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the overall system's deepsleep mode - deepsleep or deepsleep-ram or deepsleep-off. </p>
<dl class="section return"><dt>Returns</dt><dd>Returns <a class="el" href="group__group__syspm__data__enumerates.html#gaeaedd0dc630a29f06d1ad3a5fbf77894">cy_en_syspm_deep_sleep_mode_t</a></dd></dl>
<dl class="section note"><dt>Note</dt><dd>In a multi-core/multi-power domain architectures, CY_SYSPM_MODE_DEEPSLEEP_NONE will be returned by the API, if any of the following conditions are met ...</dd></dl>
<p>1) Main Power domains(PD0, PD1) are not at all configured for a particular DS.</p>
<p>2) A mix in DS states between power domains, for example PD0 configures deepsleep and PD1 configures deepsleep-RAM.</p>
<dl class="section note"><dt>Note</dt><dd>This API is available for CAT1B and CAT1D devices. This API should only be used after Cy_SysPm_SetDeepSleepMode, as it will give only the mode that is set by Cy_SysPm_SetDeepSleepMode. </dd></dl>

</div>
</div>
<a id="ga50b3751b0c4bc09d0385b27f95a99a39"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga50b3751b0c4bc09d0385b27f95a99a39">&#9670;&nbsp;</a></span>Cy_SysPm_GetBootMode()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__syspm__data__enumerates.html#ga95b0ac3e7542c6032c240b62379bc728">cy_en_syspm_boot_mode_t</a> Cy_SysPm_GetBootMode </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Checks from which Deep Sleep mode the system has woke up. </p>
<dl class="section return"><dt>Returns</dt><dd>Returns CY_SYSPM_WARM_BOOT_MODE or CY_SYSPM_WARM_COLD_MODE, if system performs warm or cold, else return CY_SYSPM_POR_BOOT_MODE if its a normal(POR) boot.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is available for CAT1B devices.</dd>
<dd>
Use this API immediately after the boot, before writing any of the PPU registers,because this API depends on the programmed state of the PPU registers, so call it before the PPU registers get overwritten.</dd>
<dd>
This API is available for CAT1B and CAT1D devices. </dd></dl>

</div>
</div>
<a id="ga7b9be88cbcc9d3b140c402a6feff20fe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7b9be88cbcc9d3b140c402a6feff20fe">&#9670;&nbsp;</a></span>Cy_SysPm_TriggerSoftReset()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Cy_SysPm_TriggerSoftReset </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Triggers the System Soft reset. </p>
<dl class="section note"><dt>Note</dt><dd>This API is available for CAT1B and CAT1D devices. </dd></dl>

</div>
</div>
<a id="gac1b5589eaaa7ac4fda44b666cc0ff22c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac1b5589eaaa7ac4fda44b666cc0ff22c">&#9670;&nbsp;</a></span>Cy_SysPm_TriggerXRes()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Cy_SysPm_TriggerXRes </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Triggers the XRES reset. </p>
<dl class="section note"><dt>Note</dt><dd>This API is available for CAT1B and CAT1D devices. </dd></dl>

</div>
</div>
<a id="ga5150c28fe4d2626720c1fbf74b3111ca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5150c28fe4d2626720c1fbf74b3111ca">&#9670;&nbsp;</a></span>Cy_SysPm_CpuEnterDeepSleep()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a> Cy_SysPm_CpuEnterDeepSleep </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__syspm__data__enumerates.html#gaae6a9f528630a2d69bb70b3bced1f0ac">cy_en_syspm_waitfor_t</a>&#160;</td>
          <td class="paramname"><em>waitFor</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets executing CPU to the Deep Sleep mode. </p>
<p>Puts the CPU executing the function into CPU Deep Sleep. For a single CPU devices the device will immediately transition to system Deep Sleep. For a dual CPU devices the device will transition to system Deep Sleep only after both CPUs are in CPU Deep Sleep power mode.</p>
<p>Prior to entering the CPU Deep Sleep mode, all callbacks of the CY_SYSPM_DEEPSLEEP type with the CY_SYSPM_CHECK_READY parameter registered callbacks are called, allowing the driver to signal whether it is ready to enter the power mode. If any CY_SYSPM_DEEPSLEEP type with the CY_SYSPM_CHECK_READY parameter call returns CY_SYSPM_FAIL, the remaining callback CY_SYSPM_DEEPSLEEP type with the CY_SYSPM_CHECK_READY parameter are skipped. After the first CY_SYSPM_FAIL, all the CY_SYSPM_DEEPSLEEP callbacks that were previously executed before getting the CY_SYSPM_CHECK_FAIL are executed with the CY_SYSPM_CHECK_FAIL parameter. The CPU Deep Sleep mode is not entered and the <a class="el" href="group__group__syspm__functions__power.html#ga5150c28fe4d2626720c1fbf74b3111ca" title="Sets executing CPU to the Deep Sleep mode. ">Cy_SysPm_CpuEnterDeepSleep()</a> function returns CY_SYSPM_FAIL.</p>
<p>If all callbacks of the CY_SYSPM_DEEPSLEEP type with the CY_SYSPM_CHECK_READY parameter return CY_SYSPM_SUCCESS, then all callbacks of the CY_SYSPM_DEEPSLEEP type with the CY_SYSPM_CHECK_FAIL parameter calls are skipped. All callbacks of the CY_SYSPM_DEEPSLEEP type with the CY_SYSPM_BEFORE_TRANSITION parameter calls are then executed, allowing the peripherals to prepare for CPU Deep Sleep. The Deep Sleep mode is then entered. Any enabled interrupt can cause a wakeup from the Deep Sleep mode.</p>
<dl class="section note"><dt>Note</dt><dd>The last callback that returns CY_SYSPM_FAIL is not executed with the CY_SYSPM_CHECK_FAIL parameter because of the FAIL. The callback generating CY_SYSPM_FAIL is expected to not make any changes that require being undone.</dd></dl>
<p>For multi-CPU devices (except CY8C6xx6 and CY8C6xx7) there is a possible situation when a syscall operation (for example during flash read or write) is executing. If the CM0+ CPU tries to enter Deep Sleep, it will fail. All the CY_SYSPM_DEEPSLEEP callbacks that were previously executed, are executed with the CY_SYSPM_CHECK_FAIL parameter. Deep Sleep mode is not entered and the <a class="el" href="group__group__syspm__functions__power.html#ga5150c28fe4d2626720c1fbf74b3111ca" title="Sets executing CPU to the Deep Sleep mode. ">Cy_SysPm_CpuEnterDeepSleep()</a> function returns CY_SYSPM_SYSCALL_PENDING.</p>
<p>The return value from executed callback functions with the CY_SYSPM_CHECK_FAIL, CY_SYSPM_BEFORE_TRANSITION, and CY_SYSPM_AFTER_TRANSITION modes are ignored.</p>
<p>If the firmware attempts to enter this mode before the system is ready (that is, when PWR_CONTROL.LPM_READY = 0), then the CPU(s) will go into the CPU Sleep mode instead and automatically enter system Deep Sleep mode when the system is ready. On dual CPU devices, if one CPU enters CPU Deep Sleep and the other CPU remains active or is in CPU Sleep the first CPU will remain in CPU Deep Sleep. A CPU Deep Sleep is functionally identical to CPU Sleep.</p>
<p>The device enters system Deep Sleep mode when all the CPU(s) are in CPU Deep Sleep, there are no busy peripherals, the debugger is not active, and the Deep Sleep power and reference are ready (PWR_CONTROL.LPM_READY=1).</p>
<p>The peripherals that do not need a clock or that receive a clock from their external interface (e.g. I2C/SPI) may continue operating in system Deep Sleep. All circuits using current from Vccdpslp supply are limited by its maximum current specification of the Deep Sleep regulator.</p>
<p>Wakeup occurs when an interrupt asserts from a Deep Sleep active peripheral. For more detail, see the corresponding peripheral's datasheet.</p>
<p>For multi-core devices, CPU wakeup can also be performed using the Send Event (SEV) assembly instruction executed from the other active CPU. Such wakeup is expected only if the CPU Sleep power mode is done with WFE assembly instruction.</p>
<dl class="section note"><dt>Note</dt><dd>For multi-CPU devices, the second CPU, if it did not participate in system wakeup, remains in CPU Deep Sleep mode. Any Deep Sleep capable interrupt routed to this CPU can also wake it.</dd></dl>
<p>For more detail about switching into the system Deep Sleep power mode and debug, refer to the device TRM.</p>
<p>A normal wakeup from the Deep Sleep power mode returns to either ULP or LP mode, depending on the previous state and programmed behavior for the particular wakeup interrupt. As soon as the system resumes LP or ULP mode the CPU(s) return to CPU Active or CPU Deep Sleep mode, depending on their configured wakeup settings.</p>
<p>After wakeup from CPU Deep Sleep, all of the registered callbacks with CY_SYSPM_DEEPSLEEP type with CY_SYSPM_AFTER_TRANSITION are executed to return peripherals to active operation. The <a class="el" href="group__group__syspm__functions__power.html#ga5150c28fe4d2626720c1fbf74b3111ca" title="Sets executing CPU to the Deep Sleep mode. ">Cy_SysPm_CpuEnterDeepSleep()</a> function returns CY_SYSPM_SUCCESS. No callbacks are executed with CY_SYSPM_DEEPSLEEP type with CY_SYSPM_BEFORE_TRANSITION or CY_SYSPM_AFTER_TRANSITION parameter, if Deep Sleep mode was not entered.</p>
<p>To support control of callback execution order th following method is implemented. Callback function with the CY_SYSPM_CHECK_READY and CY_SYSPM_BEFORE_TRANSITION parameter are executed in the same order they are registered. Callback function with the CY_SYSPM_CHECK_FAIL and CY_SYSPM_AFTER_TRANSITION parameter are executed in the reverse order they are registered.</p>
<dl class="section note"><dt>Note</dt><dd>This function clears the reset reason before going to deep sleep</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">waitFor</td><td>Selects wait for action. See <a class="el" href="group__group__syspm__data__enumerates.html#gaae6a9f528630a2d69bb70b3bced1f0ac">cy_en_syspm_waitfor_t</a>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Side Effects</dt><dd>For CY8C6xx6, CY8C6xx7 devices this function clears the Event Register of the CM4 CPU after wakeup from WFE.</dd></dl>
<dl class="section user"><dt>Side Effects</dt><dd>This function changes the slow and fast clock dividers right before entering into system Deep Sleep and restores these dividers after wakeup.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>Entered status, see <a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a>. For the PSoC 64 devices there are possible situations when function returns the PRA error status code. This is because for PSoC 64 devices the function uses the PRA driver to change the protected registers. Refer to <a class="el" href="group__group__pra__enums.html#ga60be13e12e82986f8c0d6c6a6d4f12c5">cy_en_pra_status_t</a> for more details.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>The FLL/PLL are not restored right before the CPU(s) start executing the instructions after system Deep Sleep. This can affect the peripheral that is driven by PLL/FLL. Ensure that the PLL/FLL are properly restored (locked) after wakeup from System Deep Sleep. Refer to the <a class="el" href="group__group__sysclk.html">SysClk (System Clock)</a> driver documentation for information about how to read the PLL/FLL lock statuses.</dd>
<dd>
The Arm BSD assembly instruction is not required in this function because the function implementation ensures the SLEEPDEEP bit of SCS register is settled prior executing the WFI/WFE instruction.</dd>
<dd>
This parameter is available for CAT1B devices.</dd></dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line">    <span class="comment">/* Scenario: There is a need to put the CPU into Deep Sleep mode */</span></div><div class="line">    <span class="comment">/* Prepare the system for Deep Sleep power mode here */</span></div><div class="line">    <span class="keywordflow">if</span>(<a class="code" href="group__group__syspm__data__enumerates.html#gga601b1cb722cb091133caf33d8ab235caaf00d22f1ee891a8a56f8bbf58132e775">CY_SYSPM_SUCCESS</a> != <a class="code" href="group__group__syspm__functions__power.html#ga5150c28fe4d2626720c1fbf74b3111ca">Cy_SysPm_CpuEnterDeepSleep</a>(<a class="code" href="group__group__syspm__data__enumerates.html#ggaae6a9f528630a2d69bb70b3bced1f0acadf47e50b6700c08b6f9e7e70bb525541">CY_SYSPM_WAIT_FOR_INTERRUPT</a>))</div><div class="line">    {</div><div class="line">        <span class="comment">/* CPU did not enter Deep Sleep mode because a registered </span></div><div class="line"><span class="comment">        *  CPU Deep Sleep &quot;check ready&quot; callback returned a &quot;not success&quot; status</span></div><div class="line"><span class="comment">        */</span></div><div class="line">    }</div><div class="line">    <span class="keywordflow">else</span></div><div class="line">    {</div><div class="line">        <span class="comment">/* If the program has reached here, the core is just woken up</span></div><div class="line"><span class="comment">         * from the CPU Deep Sleep mode</span></div><div class="line"><span class="comment">         */</span></div><div class="line">    }</div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="ga72531fcca015df727a163b510639a334"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga72531fcca015df727a163b510639a334">&#9670;&nbsp;</a></span>Cy_SysPm_SystemEnterLp()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a> Cy_SysPm_SystemEnterLp </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets device into system Low Power mode. </p>
<p>Returns the system to the default LP mode by raising the core voltage. In the LP mode, the clock frequencies can be increased to t he LP mode limitations. Refer to the device datasheet for frequency limitations in the LP mode. Approximate LP limit values - <a class="el" href="group__group__syspm.html#group_syspm_lp_limitations">LP Limitations</a>.</p>
<p>Prior to entering the system LP mode, all the registered CY_SYSPM_LP callbacks with CY_SYSPM_CHECK_READY parameter are called. This allows the driver to signal that it is not ready to enter the system LP mode. If any CY_SYSPM_LP callbacks with the CY_SYSPM_CHECK_READY parameter call return CY_SYSPM_FAIL, the remaining CY_SYSPM_LP callbacks with the CY_SYSPM_CHECK_READY parameter calls are skipped.</p>
<p>After a CY_SYSPM_FAIL, all of the CY_SYSPM_LP callbacks with CY_SYSPM_CHECK_FAIL parameter are executed that correspond to the CY_SYSPM_LP callbacks with CY_SYSPM_CHECK_READY parameter that occurred up to the point of failure. System LP mode is not entered and the <a class="el" href="group__group__syspm__functions__power.html#ga72531fcca015df727a163b510639a334" title="Sets device into system Low Power mode. ">Cy_SysPm_SystemEnterLp()</a> function returns CY_SYSPM_FAIL.</p>
<p>If all CY_SYSPM_LP callbacks with the CY_SYSPM_CHECK_READY parameter return CY_SYSPM_SUCCESS, then all CY_SYSPM_LP callbacks with CY_SYSPM_CHECK_FAIL are skipped and all CY_SYSPM_LP callbacks with the CY_SYSPM_BEFORE_TRANSITION parameter are executed. This allows the peripherals to prepare for LP mode. The system LP mode is then entered.</p>
<p>After entering the system LP mode, all of the registered CY_SYSPM_LP callbacks with the CY_SYSPM_AFTER_TRANSITION parameter are executed to complete preparing the peripherals for low power operation. The <a class="el" href="group__group__syspm__functions__power.html#ga72531fcca015df727a163b510639a334" title="Sets device into system Low Power mode. ">Cy_SysPm_SystemEnterLp()</a> function returns CY_SYSPM_SUCCESS. No CY_SYSPM_LP callbacks with the CY_SYSPM_BEFORE_TRANSITION or CY_SYSPM_AFTER_TRANSITION parameter are executed if the system LP mode is not entered.</p>
<dl class="section note"><dt>Note</dt><dd>The last callback that returns CY_SYSPM_FAIL is not executed with the CY_SYSPM_CHECK_FAIL parameter because of the FAIL. The callback generating CY_SYSPM_FAIL is expected to not make any changes that require being undone.</dd>
<dd>
CAT1D devices support ULP, LP and HP modes, transitioning between ULP &lt;-&gt; HP modes requires LP mode to be entered first and then to the required mode.</dd></dl>
<p>The return value from executed callback functions with the CY_SYSPM_CHECK_FAIL, CY_SYSPM_BEFORE_TRANSITION, and CY_SYSPM_AFTER_TRANSITION modes are ignored.</p>
<p>To support control of callback execution order th following method is implemented. Callback function with the CY_SYSPM_CHECK_READY and CY_SYSPM_BEFORE_TRANSITION parameter are executed in the same order they are registered. Callback function with the CY_SYSPM_CHECK_FAIL and CY_SYSPM_AFTER_TRANSITION parameter are executed in the reverse order they are registered.</p>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>CY_SYSPM_SUCCESS - Entered the system LP mode or the device is already in LP mode.</li>
<li>CY_SYSPM_INVALID_STATE - The system LP mode was not set. The system LP mode was not set because the protection context value is higher than zero (PC &gt; 0) or the device revision does not support modifying registers (to enter LP mode) via syscall.</li>
<li>CY_SYSPM_CANCELED - Operation was canceled. Call the function again until the function returns CY_SYSPM_SUCCESS.</li>
<li>CY_SYSPM_FAIL - The system LP mode is not entered. For the PSoC 64 devices there are possible situations when function returns the PRA error status code. This is because for PSoC 64 devices the function uses the PRA driver to change the protected registers. Refer to <a class="el" href="group__group__pra__enums.html#ga60be13e12e82986f8c0d6c6a6d4f12c5">cy_en_pra_status_t</a> for more details.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is available for CAT1A, CAT1B(PSOC C3) &amp; CAT1D devices.</dd></dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line">    <span class="comment">/* Scenario: There is a need to put the device to the system LP mode */</span></div><div class="line">    <span class="keywordflow">if</span>(<a class="code" href="group__group__syspm__data__enumerates.html#gga601b1cb722cb091133caf33d8ab235caaf00d22f1ee891a8a56f8bbf58132e775">CY_SYSPM_SUCCESS</a> != <a class="code" href="group__group__syspm__functions__power.html#ga72531fcca015df727a163b510639a334">Cy_SysPm_SystemEnterLp</a>())</div><div class="line">    {</div><div class="line">        <span class="comment">/* System did not enter LP mode because a registered</span></div><div class="line"><span class="comment">        *  LP mode &quot;check ready&quot; callback returned a &quot;not success&quot; status</span></div><div class="line"><span class="comment">        */</span></div><div class="line">    }</div><div class="line"></div><div class="line">    <span class="comment">/* Reconfigure/switch on the peripherals</span></div><div class="line"><span class="comment">    * with relaxed power consumption restrictions</span></div><div class="line"><span class="comment">    */</span></div><div class="line"></div><div class="line">    <span class="comment">/* Call Cy_SysLib_SetWaitStates(true, clkMHz);</span></div><div class="line"><span class="comment">    * where clkMHz is the current CPU frequency in MHz</span></div><div class="line"><span class="comment">    */</span></div><div class="line"></div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="gaca7c8f1ab6d555530a68978269198836"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaca7c8f1ab6d555530a68978269198836">&#9670;&nbsp;</a></span>Cy_SysPm_SystemEnterUlp()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a> Cy_SysPm_SystemEnterUlp </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets device into system Ultra Low Power mode. </p>
<p>System ULP mode is similar to system LP mode. The difference is that the system is put under <a class="el" href="group__group__syspm.html#group_syspm_ulp_limitations">ULP Limitations</a>.</p>
<p>Before entering system ULP mode, the user must configure the system so the maximum clock frequencies are less than the ULP mode specifications presented in the device datasheet. Refer to the device datasheet for the maximum clock limitations in the ULP mode with reduced core supply regulator voltages.</p>
<p>Prior to entering system ULP mode, all the registered CY_SYSPM_ULP callbacks with CY_SYSPM_CHECK_READY parameter are called. This allows the driver to signal if it is not ready to enter system ULP mode. If any CY_SYSPM_ULP callback with the CY_SYSPM_CHECK_READY parameter call returns CY_SYSPM_FAIL, the remaining CY_SYSPM_ULP callbacks with the CY_SYSPM_CHECK_READY parameter are skipped.</p>
<p>After a CY_SYSPM_FAIL, all of the CY_SYSPM_ULP callbacks with the CY_SYSPM_CHECK_FAIL parameter are executed that correspond to the CY_SYSPM_ULP callback with CY_SYSPM_CHECK_READY parameter that occurred up to the point of failure. System ULP mode is not entered and the <a class="el" href="group__group__syspm__functions__power.html#gaca7c8f1ab6d555530a68978269198836" title="Sets device into system Ultra Low Power mode. ">Cy_SysPm_SystemEnterUlp()</a> function returns CY_SYSPM_FAIL.</p>
<p>If all CY_SYSPM_ULP callbacks with the CY_SYSPM_CHECK_READY parameter return CY_SYSPM_SUCCESS, then all CY_SYSPM_ULP callbacks with CY_SYSPM_CHECK_FAIL calls are skipped and all CY_SYSPM_ULP callbacks with the CY_SYSPM_BEFORE_TRANSITION parameter are executed. This allows preparation for ULP. The system ULP mode is then entered.</p>
<p>After entering system ULP, all of the registered CY_SYSPM_ULP callbacks with the CY_SYSPM_AFTER_TRANSITION parameter are executed to complete preparing the peripherals for ULP operation. The <a class="el" href="group__group__syspm__functions__power.html#gaca7c8f1ab6d555530a68978269198836" title="Sets device into system Ultra Low Power mode. ">Cy_SysPm_SystemEnterUlp()</a> function returns CY_SYSPM_SUCCESS. No CY_SYSPM_ULP callbacks with the CY_SYSPM_BEFORE_TRANSITION or CY_SYSPM_AFTER_TRANSITION parameter are executed, if ULP mode is not entered.</p>
<dl class="section note"><dt>Note</dt><dd>The last callback that returns CY_SYSPM_FAIL is not executed with the CY_SYSPM_CHECK_FAIL parameter because of the FAIL. The callback generating CY_SYSPM_FAIL is expected to not make any changes that require being undone.</dd>
<dd>
CAT1D devices support ULP, LP and HP modes, transitioning between ULP &lt;-&gt; HP modes requires LP mode to be entered first and then to the required mode.</dd></dl>
<p>The return value from executed callback functions with the CY_SYSPM_CHECK_FAIL, CY_SYSPM_BEFORE_TRANSITION, and CY_SYSPM_AFTER_TRANSITION modes are ignored.</p>
<p>To support control of callback execution order th following method is implemented. Callback function with the CY_SYSPM_CHECK_READY and CY_SYSPM_BEFORE_TRANSITION parameter are executed in the same order they are registered. Callback function with the CY_SYSPM_CHECK_FAIL and CY_SYSPM_AFTER_TRANSITION parameter are executed in the reverse order they are registered.</p>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>CY_SYSPM_SUCCESS - Entered the system ULP mode or the device is already in ULP mode.</li>
<li>CY_SYSPM_INVALID_STATE - System ULP mode was not set. The ULP mode was not set because the protection context value is higher than zero (PC &gt; 0) or the device revision does not support modifying registers (to enter system ULP mode) via syscall.</li>
<li>CY_SYSPM_CANCELED - Operation was canceled. Call the function again until the function returns CY_SYSPM_SUCCESS.</li>
<li>CY_SYSPM_FAIL - The system ULP mode is not entered. For the PSoC 64 devices there are possible situations when function returns the PRA error status code. This is because for PSoC 64 devices the function uses the PRA driver to change the protected registers. Refer to <a class="el" href="group__group__pra__enums.html#ga60be13e12e82986f8c0d6c6a6d4f12c5">cy_en_pra_status_t</a> for more details.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is available for CAT1A, CAT1B(PSOC C3) &amp; CAT1D devices.</dd></dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line">    <span class="comment">/* Scenario: There is a need to put the device into the ULP mode */</span></div><div class="line">    </div><div class="line">    <span class="comment">/* Prepare the device for system ULP entering - reconfigure/switch off </span></div><div class="line"><span class="comment">    *  some used peripherals to match the current consumption and operating </span></div><div class="line"><span class="comment">    *  frequency restrictions of ULP mode.</span></div><div class="line"><span class="comment">    */</span></div><div class="line">     </div><div class="line">    <span class="comment">/* Call Cy_SysLib_SetWaitStates(true, clkMHz);</span></div><div class="line"><span class="comment">    *  where clkMHz is the CPU frequency in MHz</span></div><div class="line"><span class="comment">    */</span></div><div class="line">     </div><div class="line">    <span class="keywordflow">if</span>(<a class="code" href="group__group__syspm__data__enumerates.html#gga601b1cb722cb091133caf33d8ab235caaf00d22f1ee891a8a56f8bbf58132e775">CY_SYSPM_SUCCESS</a> != <a class="code" href="group__group__syspm__functions__power.html#gaca7c8f1ab6d555530a68978269198836">Cy_SysPm_SystemEnterUlp</a>())</div><div class="line">    {</div><div class="line">        <span class="comment">/* System did not enter ULP mode because a registered </span></div><div class="line"><span class="comment">        *  ULP &quot;check ready&quot; callback returned a &quot;not success&quot; status</span></div><div class="line"><span class="comment">        */</span></div><div class="line">    }</div><div class="line">    </div><div class="line">    <span class="comment">/* Device is in system ULP mode */</span></div><div class="line">    </div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="gae97647a28c370674ba57d451d21d1c51"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae97647a28c370674ba57d451d21d1c51">&#9670;&nbsp;</a></span>Cy_SysPm_SystemEnterHibernate()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a> Cy_SysPm_SystemEnterHibernate </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets the device into system Hibernate mode. </p>
<p>Puts the device into the system Hibernate power mode. Prior to entering Hibernate mode, all callbacks of the CY_SYSPM_HIBERNATE type are executed.</p>
<p>First, callbacks of the CY_SYSPM_HIBERNATE type are called with the CY_SYSPM_CHECK_READY parameter. This allows the callback to signal that the driver is not ready to enter the system Hibernate power mode. If any of the callback return CY_SYSPM_FAIL, the remaining CY_SYSPM_HIBERNATE callbacks are skipped. In this case, all of the callbacks that have already been called are called again with the CY_SYSPM_CHECK_FAIL parameter. System Hibernate mode is not entered and the <a class="el" href="group__group__syspm__functions__power.html#gae97647a28c370674ba57d451d21d1c51" title="Sets the device into system Hibernate mode. ">Cy_SysPm_SystemEnterHibernate()</a> function returns CY_SYSPM_FAIL.</p>
<p>If all CY_SYSPM_HIBERNATE callbacks with the CY_SYSPM_CHECK_READY parameter return CY_SYSPM_SUCCESS, then all CY_SYSPM_HIBERNATE callbacks with CY_SYSPM_CHECK_FAIL calls are skipped and all CY_SYSPM_HIBERNATE callbacks with CY_SYSPM_BEFORE_TRANSITION parameter are executed allowing the peripherals to prepare for system Hibernate.</p>
<p>The I/O output state is automatically frozen by hardware system and Hibernate mode is then entered. In Hibernate mode, all internal supplies are off and no internal state is retained. The only exception is resources powered by the Vbackup domain continue to operate, if enabled. For multi-CPU devices, there is no handshake with the CPUs and the chip will enter Hibernate power mode immediately.</p>
<dl class="section note"><dt>Note</dt><dd>The last callback that returns CY_SYSPM_FAIL is not executed with the CY_SYSPM_CHECK_FAIL parameter because of the FAIL. The callback generating CY_SYSPM_FAIL is expected to not make any changes that require being undone.</dd></dl>
<p>The return value from executed callback functions with the CY_SYSPM_CHECK_FAIL, CY_SYSPM_BEFORE_TRANSITION, and CY_SYSPM_AFTER_TRANSITION modes are ignored.</p>
<p>Wakeup from system Hibernate is triggered by toggling the wakeup pin(s), WDT match, or back-up domain RTC alarm expiration, depending on how the they are configured. A wakeup causes a normal boot procedure. To configure the wakeup pin(s), a digital input pin must be configured, and resistively pulled up or down to the inverse state of the wakeup polarity. To distinguish a Hibernate mode from a general reset wakeup event, the <a class="el" href="group__group__syslib__functions.html#gac8aa61d2f8052886c676f4f592d1693d" title="The function returns the cause for the latest reset(s) that occurred in the system. ">Cy_SysLib_GetResetReason()</a> function can be used. The wakeup pin and low-power comparators are active-low by default. The wakeup pin or the LPComparators polarity can be changed with the <a class="el" href="group__group__syspm__functions__power.html#ga2540970e6c27efa25752efc43da0d622">Cy_SysPm_SetHibernateWakeupSource()</a> function. This function call will not return if system Hibernate mode is entered. The CY_SYSPM_HIBERNATE callbacks with the CY_SYSPM_AFTER_TRANSITION parameter are never executed.</p>
<p>This function freezes the I/O pins implicitly. Entering system Hibernate mode before freezing the I/O pins is not possible. The I/O pins remain frozen after waking from Hibernate mode until the firmware unfreezes them with a <a class="el" href="group__group__syspm__functions__iofreeze.html#ga5df20917d995755606672fac961e8e9b">Cy_SysPm_IoUnfreeze()</a> function call.</p>
<p>Boot firmware should reconfigure the I/O pins as required by the application prior unfreezing them.</p>
<p>To support control of callback execution order the following method is implemented. Callback function with the CY_SYSPM_CHECK_READY and CY_SYSPM_BEFORE_TRANSITION parameter are executed in the same order they are registered. Callback function with the CY_SYSPM_CHECK_FAIL and CY_SYSPM_AFTER_TRANSITION parameter are executed in the reverse order they are registered.</p>
<dl class="section return"><dt>Returns</dt><dd>Entered status, see <a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a>. For the PSoC 64 devices there are possible situations when function returns the PRA error status code. This is because for PSoC 64 devices the function uses the PRA driver to change the protected registers. Refer to <a class="el" href="group__group__pra__enums.html#ga60be13e12e82986f8c0d6c6a6d4f12c5">cy_en_pra_status_t</a> for more details.</dd></dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line">    <span class="comment">/* Scenario: There is a need to put the device into the system Hibernate mode */</span></div><div class="line">    </div><div class="line">    <span class="comment">/* Prepare the device for system Hibernate mode here */</span></div><div class="line">    <span class="keywordflow">if</span>(<a class="code" href="group__group__syspm__data__enumerates.html#gga601b1cb722cb091133caf33d8ab235caaf00d22f1ee891a8a56f8bbf58132e775">CY_SYSPM_SUCCESS</a> != <a class="code" href="group__group__syspm__functions__power.html#gae97647a28c370674ba57d451d21d1c51">Cy_SysPm_SystemEnterHibernate</a>())</div><div class="line">    {</div><div class="line">        <span class="comment">/* System did not enter Hibernate mode because a registered </span></div><div class="line"><span class="comment">        *  Hibernate &quot;check ready&quot; callback returned a &quot;not success&quot; status</span></div><div class="line"><span class="comment">        */</span></div><div class="line">    }</div><div class="line">    <span class="comment">/* You will never get CY_SYSPM_SUCCESS here because in case of successfully</span></div><div class="line"><span class="comment">     * entering system hibernate mode because a wakeup from system Hibernate </span></div><div class="line"><span class="comment">     * goes through the system reset.</span></div><div class="line"><span class="comment">     */</span></div></div><!-- fragment --> </dd></dl>
<dl class="section note"><dt>Note</dt><dd>In order to get correct value of hibernate wake up cause at next hibernation, upper layer have to clear the interrupt register first and then clear the hibernate wake up cause <a class="el" href="group__group__syspm__functions__power.html#ga5e114fa9274e2cb4073ed5cf837d780c">Cy_SysPm_ClearHibernateWakeupCause()</a> for the current hibernation. </dd></dl>

</div>
</div>
<a id="ga2540970e6c27efa25752efc43da0d622"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2540970e6c27efa25752efc43da0d622">&#9670;&nbsp;</a></span>Cy_SysPm_SetHibernateWakeupSource()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Cy_SysPm_SetHibernateWakeupSource </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>wakeupSource</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function configures sources to wake up the device from the system Hibernate power mode. </p>
<p>Sources can be wakeup pins, LPComparators, Watchdog (WDT) interrupt, or a Real-Time clock (RTC) alarm (interrupt). Wakeup from system Hibernate always results in a device reset and normal boot process.</p>
<p>Wakeup pins:</p>
<p>A wakeup is supported by up to two pins with programmable polarity. These pins are typically connected to the GPIO pins or on-chip peripherals under some conditions. See device datasheet for specific pin connections. Setting the wakeup pin to this level will cause a wakeup from system Hibernate mode. The wakeup pins are active-low by default.</p>
<p>LPComparators:</p>
<p>A wakeup is supported by up to two LPComps with programmable polarity. Setting the LPComp to this level will cause a wakeup from system Hibernate mode. The wakeup LPComps are active-low by default.</p>
<dl class="section note"><dt>Note</dt><dd>The low-power comparators should be configured and enabled before switching to system Hibernate mode. Refer to the LPComp driver description for more detail.</dd></dl>
<p>Watchdog Timer:</p>
<dl class="section note"><dt>Note</dt><dd>The WDT should be configured and enabled before entering to system Hibernate mode.</dd></dl>
<p>A wakeup is performed by a WDT interrupt.</p>
<p>Real-time Clock:</p>
<p>A wakeup is performed by the RTC alarm. Refer to the Real-Time Clock (RTC) driver description for more detail.</p>
<p>For information about wakeup sources and their assignment in specific devices, refer to the appropriate device TRM.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">wakeupSource</td><td>The source to be configured as a wakeup source from the system Hibernate power mode, see <a class="el" href="group__group__syspm__data__enumerates.html#ga369b76c2e602edf09ede9f8f804e066e">cy_en_syspm_hibernate_wakeup_source_t</a>. The input parameter values can be ORed. For example, if you want to enable LPComp0 (active high) and WDT, call this function: Cy_SysPm_SetHibernateWakeupSource(CY_SYSPM_HIBERNATE_LPCOMP0_HIGH | CY_SYSPM_HIBERNATE_WDT).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section warning"><dt>Warning</dt><dd>Do not call this function with different polarity levels for the same wakeup source. For example, do not call a function like this: Cy_SysPm_SetHibernateWakeupSource(CY_SYSPM_HIBERNATE_LPCOMP0_LOW, CY_SYSPM_HIBERNATE_LPCOMP0_HIGH);</dd></dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line">    <span class="comment">/* Scenario: There is a need to configure all desired system Hibernate wake up sources */</span></div><div class="line">    <a class="code" href="group__group__syspm__functions__power.html#ga2540970e6c27efa25752efc43da0d622">Cy_SysPm_SetHibernateWakeupSource</a>(<a class="code" href="group__group__syspm__data__enumerates.html#gga369b76c2e602edf09ede9f8f804e066eacc5b659a29fd73bbd1493d177e1df779">CY_SYSPM_HIBERNATE_PIN0_LOW</a> | <a class="code" href="group__group__syspm__data__enumerates.html#gga369b76c2e602edf09ede9f8f804e066eaf1aa6dc689e0656b696f0b81f7e323c7">CY_SYSPM_HIBERNATE_RTC_ALARM</a> | <a class="code" href="group__group__syspm__data__enumerates.html#gga369b76c2e602edf09ede9f8f804e066eacb2a6e7c498e704f86f2315833feddcf">CY_SYSPM_HIBERNATE_PIN1_HIGH</a>);</div><div class="line">    </div><div class="line">    <span class="comment">/* Scenario: the PIN0 wake up polarity was Low and there is a need to set it to High */</span></div><div class="line">    <a class="code" href="group__group__syspm__functions__power.html#ga2540970e6c27efa25752efc43da0d622">Cy_SysPm_SetHibernateWakeupSource</a>(<a class="code" href="group__group__syspm__data__enumerates.html#gga369b76c2e602edf09ede9f8f804e066eab23bab5f569ddfcfa2cf568d71236d65">CY_SYSPM_HIBERNATE_PIN0_HIGH</a>);</div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="ga5cb3a837b9c441f4806c7550e6a0b026"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5cb3a837b9c441f4806c7550e6a0b026">&#9670;&nbsp;</a></span>Cy_SysPm_ClearHibernateWakeupSource()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Cy_SysPm_ClearHibernateWakeupSource </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>wakeupSource</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function disables a wakeup source that was previously configured to wake up the device from the system Hibernate mode. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">wakeupSource</td><td>For the source to be disabled, see <a class="el" href="group__group__syspm__data__enumerates.html#ga369b76c2e602edf09ede9f8f804e066e">cy_en_syspm_hibernate_wakeup_source_t</a>. The input parameters values can be ORed. For example, if you want to disable LPComp0 (active high) and WDT call this function: Cy_SysPm_ClearHibernateWakeupSource(CY_SYSPM_HIBERNATE_LPCOMP0_HIGH | CY_SYSPM_HIBERNATE_WDT).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line">    <span class="comment">/* Scenario: There is a need to disable the RTC alarm wake up source */</span></div><div class="line">    <a class="code" href="group__group__syspm__functions__power.html#ga5cb3a837b9c441f4806c7550e6a0b026">Cy_SysPm_ClearHibernateWakeupSource</a>(<a class="code" href="group__group__syspm__data__enumerates.html#gga369b76c2e602edf09ede9f8f804e066eaf1aa6dc689e0656b696f0b81f7e323c7">CY_SYSPM_HIBERNATE_RTC_ALARM</a>);</div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="gafc7877f22758499d5d199401cd60f28f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafc7877f22758499d5d199401cd60f28f">&#9670;&nbsp;</a></span>Cy_SysPm_GetHibernateWakeupCause()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__syspm__data__enumerates.html#ga369b76c2e602edf09ede9f8f804e066e">cy_en_syspm_hibernate_wakeup_source_t</a> Cy_SysPm_GetHibernateWakeupCause </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function gets the wakeup cause for Hibernate mode. </p>
<dl class="section return"><dt>Returns</dt><dd>Wakeup Reason <a class="el" href="group__group__syspm__data__enumerates.html#ga369b76c2e602edf09ede9f8f804e066e">cy_en_syspm_hibernate_wakeup_source_t</a></dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is available for CAT1B, CAT1C (Traveo II Cluster) and CAT1D devices. </dd></dl>

</div>
</div>
<a id="ga5e114fa9274e2cb4073ed5cf837d780c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5e114fa9274e2cb4073ed5cf837d780c">&#9670;&nbsp;</a></span>Cy_SysPm_ClearHibernateWakeupCause()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Cy_SysPm_ClearHibernateWakeupCause </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function Clears the wakeup cause register. </p>
<dl class="section note"><dt>Note</dt><dd>This API is available for CAT1B, CAT1C (Traveo II Cluster) and CAT1D devices. </dd></dl>

</div>
</div>
<a id="ga3bde7056544d0ada3da80a0f58fefab9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3bde7056544d0ada3da80a0f58fefab9">&#9670;&nbsp;</a></span>Cy_SysPm_SystemSetMinRegulatorCurrent()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a> Cy_SysPm_SystemSetMinRegulatorCurrent </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets the system into minimum core regulator current mode. </p>
<p>This mode limits maximum current available for the system core logic.</p>
<p>Minimum regulator current mode modifies operation of the system in LP or ULP modes to further reduce current consumption. If the system current is below datasheet current limits for the active core voltage regulator (LDO or Buck), this mode may be entered. The user is responsible for ensuring the regulator current limit is met in their application.</p>
<p>When in minimum regulator current mode, the following system resources are also set to their LP mode:</p><ul>
<li>Linear regulator (If LDO is active regulator)</li>
<li>POR/BOD circuit</li>
<li>Bandgap reference circuit</li>
<li>Reference buffer circuit</li>
<li>Current reference circuit</li>
</ul>
<p>The LDO and Buck current limits must be met prior to entering this mode. If these are not met, the device may brown out, resulting in an exception or reset. These changes also reduce power supply rejection of the affected system resources, which can result in increased noise or response time. These effects must be evaluated in each application.</p>
<dl class="section return"><dt>Returns</dt><dd>See <a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a>.<ul>
<li>CY_SYSPM_SUCCESS - Minimum regulator current mode was set</li>
<li>CY_SYSPM_CANCELED - The power circuits were not ready to enter into minimum current mode. You should call the function again. For the PSoC 64 devices there are possible situations when function returns the PRA error status code. This is because for PSoC 64 devices the function uses the PRA driver to change the protected registers. Refer to <a class="el" href="group__group__pra__enums.html#ga60be13e12e82986f8c0d6c6a6d4f12c5">cy_en_pra_status_t</a> for more details.</li>
</ul>
</dd></dl>
<p>Refer to device datasheet for maximum current value in regulator minimum current mode.</p>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line">    </div><div class="line">    <span class="comment">/* Scenario: There is a need to limit device current consumption. This can </span></div><div class="line"><span class="comment">    *  be done by setting the regulator minimum current mode</span></div><div class="line"><span class="comment">    */</span></div><div class="line"></div><div class="line">    <span class="comment">/* Before setting the regulator minimum current mode ensure that device </span></div><div class="line"><span class="comment">    *  current consumption is less than the regulator maximum value. If not BOD </span></div><div class="line"><span class="comment">    *  can occur. Refer to device datasheet for the maximum current value of </span></div><div class="line"><span class="comment">    *  regulator minimum current mode</span></div><div class="line"><span class="comment">    */</span></div><div class="line">    </div><div class="line">    <span class="comment">/* Check regulator current mode */</span></div><div class="line">    <span class="keywordflow">if</span> (!<a class="code" href="group__group__syspm__functions__power.html#ga945ba75666ab90b16c66128853ffa820">Cy_SysPm_SystemIsMinRegulatorCurrentSet</a>())</div><div class="line">    {</div><div class="line">        <span class="comment">/* Set regulator minimum current mode */</span></div><div class="line">        <a class="code" href="group__group__syspm__functions__power.html#ga3bde7056544d0ada3da80a0f58fefab9">Cy_SysPm_SystemSetMinRegulatorCurrent</a>();</div><div class="line">    }</div><div class="line">    </div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="ga54112d6ea4d40ad241923ee7068f5363"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga54112d6ea4d40ad241923ee7068f5363">&#9670;&nbsp;</a></span>Cy_SysPm_SystemSetNormalRegulatorCurrent()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__syspm__data__enumerates.html#ga601b1cb722cb091133caf33d8ab235ca">cy_en_syspm_status_t</a> Cy_SysPm_SystemSetNormalRegulatorCurrent </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets the system to normal regulator current mode. </p>
<p>Normal regulator current mode modifies operation of the system in LP or ULP modes to provide maximum core current consumption. If the LDO core regulator is in use, the normal mode output current limits may be used. If the buck regulator is in use, its reduced current output limits still apply.</p>
<p>When in normal regulator current mode, the following system resources are set to their normal mode:</p><ul>
<li>Linear regulator (If LDO is active regulator)</li>
<li>POR/BOD circuit</li>
<li>Bandgap reference circuit</li>
<li>Reference buffer circuit</li>
<li>Current reference circuit</li>
</ul>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>CY_SYSPM_SUCCESS - Normal regulator current mode was set</li>
<li>CY_SYSPM_TIMEOUT - The timeout occurred because device was not ready to enter into the normal regulator current mode For the PSoC 64 devices there are possible situations when function returns the PRA error status code. This is because for PSoC 64 devices the function uses the PRA driver to change the protected registers. Refer to <a class="el" href="group__group__pra__enums.html#ga60be13e12e82986f8c0d6c6a6d4f12c5">cy_en_pra_status_t</a> for more details.</li>
</ul>
</dd></dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line">    </div><div class="line">    <span class="comment">/* Scenario: There is a need to increase available core regulator current </span></div><div class="line"><span class="comment">    *  by setting the to regulator normal current mode</span></div><div class="line"><span class="comment">    */</span></div><div class="line"></div><div class="line">    <span class="comment">/* Check regulator current mode */</span></div><div class="line">    <span class="keywordflow">if</span> (<a class="code" href="group__group__syspm__functions__power.html#ga945ba75666ab90b16c66128853ffa820">Cy_SysPm_SystemIsMinRegulatorCurrentSet</a>())</div><div class="line">    {</div><div class="line">        <span class="comment">/* Set regulator to normal current mode */</span></div><div class="line">        <a class="code" href="group__group__syspm__functions__power.html#ga54112d6ea4d40ad241923ee7068f5363">Cy_SysPm_SystemSetNormalRegulatorCurrent</a>();</div><div class="line">    }</div><div class="line"></div><div class="line">    <span class="comment">/* Once the regulator is set to normal current mode, current consumption </span></div><div class="line"><span class="comment">    *  can be increased to maximum specification</span></div><div class="line"><span class="comment">    */</span></div><div class="line">    </div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="ga7c50f7236c3a6a7b75a7d915f8ebb089"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7c50f7236c3a6a7b75a7d915f8ebb089">&#9670;&nbsp;</a></span>Cy_SysPm_CpuSleepOnExit()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Cy_SysPm_CpuSleepOnExit </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>enable</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function configures the sleep-on-exit feature of the CPU. </p>
<p>This API sets the SLEEPONEXIT bit of the SCR register.</p>
<p>When the sleep-on-exit feature is enabled (the SLEEPONEXIT bit is set), the CPU wakes up to service the interrupt and then immediately goes back to sleep. Because of this, the unstacking process is not carried out, so this feature is useful for interrupt driven application and helps to reduce unnecessary stack push and pop operations. The CPU does not go to sleep if the interrupt handler returns to another interrupt handler (nested interrupt). You can use this feature in applications that require the CPU to only run when an interrupt occurs.</p>
<p>When the sleep-on-exit feature is disabled (the SLEEPONEXIT bit is cleared), the CPU returns back to the main thread after servicing the interrupt without going back to sleep.</p>
<p>Refer to the Arm documentation about the sleep-on-exit feature and SLEEPONEXIT in the SCR register.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">enable</td><td><ul>
<li>True if enable sleep-on-exit feature.</li>
<li>False if disable sleep-on-exit feature.</li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line">    <span class="comment">/* Scenario: There is a need to enable sleep-on-exit feature */</span></div><div class="line">    <a class="code" href="group__group__syspm__functions__power.html#ga7c50f7236c3a6a7b75a7d915f8ebb089">Cy_SysPm_CpuSleepOnExit</a>(<span class="keyword">true</span>);</div><div class="line">    </div><div class="line">    <span class="comment">/* Prepare the device for CPU Sleep */</span></div><div class="line">    <span class="keywordflow">if</span>(<a class="code" href="group__group__syspm__data__enumerates.html#gga601b1cb722cb091133caf33d8ab235caaf00d22f1ee891a8a56f8bbf58132e775">CY_SYSPM_SUCCESS</a> == <a class="code" href="group__group__syspm__functions__power.html#gab09936e85606de476a0c379f9548603f">Cy_SysPm_CpuEnterSleep</a>(<a class="code" href="group__group__syspm__data__enumerates.html#ggaae6a9f528630a2d69bb70b3bced1f0acadf47e50b6700c08b6f9e7e70bb525541">CY_SYSPM_WAIT_FOR_INTERRUPT</a>))</div><div class="line">    {</div><div class="line">        <span class="comment">/* Now the CPU is in Sleep. </span></div><div class="line"><span class="comment">        *  The CPU wakes up to service the interrupt and then immediately goes </span></div><div class="line"><span class="comment">        *  back to CPU Sleep. </span></div><div class="line"><span class="comment">        */</span> </div><div class="line">    }</div><div class="line">        </div><div class="line">    <span class="comment">/* Scenario: There is a need to disable sleep-on-exit after it was enabled</span></div><div class="line"><span class="comment">    *  Call Cy_SysPm_CpuSleepOnExit(false) in the interrupt handler </span></div><div class="line"><span class="comment">    */</span></div><div class="line">        </div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="gabd844e62e992040d43b3b692b7718c77"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabd844e62e992040d43b3b692b7718c77">&#9670;&nbsp;</a></span>Cy_SysPm_CpuSendWakeupEvent()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Cy_SysPm_CpuSendWakeupEvent </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sends the SEV (Send Event) ARM instruction to the system. </p>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line">    </div><div class="line">    <span class="comment">/* Scenario: There is a need wakeup the CM4 CPU in the system using the </span></div><div class="line"><span class="comment">    *  CM0+ CPU without using interrupts if the CM4 CPU is in CPU Sleep mode.</span></div><div class="line"><span class="comment">    */</span></div><div class="line"></div><div class="line">    <span class="comment">/* Check the CM4 CPU status */</span></div><div class="line">    <span class="keywordflow">if</span> (<a class="code" href="group__group__syspm__functions__power__status.html#ga4ebf9e80e8f6973f1023f54a79456cba">Cy_SysPm_Cm4IsSleep</a>())</div><div class="line">    {</div><div class="line">        <span class="comment">/* Wake up the CM4 CPU */</span></div><div class="line">        <a class="code" href="group__group__syspm__functions__power.html#gabd844e62e992040d43b3b692b7718c77">Cy_SysPm_CpuSendWakeupEvent</a>();</div><div class="line">    }</div><div class="line"></div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="ga945ba75666ab90b16c66128853ffa820"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga945ba75666ab90b16c66128853ffa820">&#9670;&nbsp;</a></span>Cy_SysPm_SystemIsMinRegulatorCurrentSet()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Cy_SysPm_SystemIsMinRegulatorCurrentSet </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check whether the system regulator is set to minimal current mode. </p>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>True - system is in regulator minimum current mode.</li>
<li>False - system is in normal regulator current mode.</li>
</ul>
</dd></dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line">    </div><div class="line">    <span class="comment">/* Scenario: There is a need to increase available core regulator current </span></div><div class="line"><span class="comment">    *  by setting the to regulator normal current mode</span></div><div class="line"><span class="comment">    */</span></div><div class="line"></div><div class="line">    <span class="comment">/* Check regulator current mode */</span></div><div class="line">    <span class="keywordflow">if</span> (<a class="code" href="group__group__syspm__functions__power.html#ga945ba75666ab90b16c66128853ffa820">Cy_SysPm_SystemIsMinRegulatorCurrentSet</a>())</div><div class="line">    {</div><div class="line">        <span class="comment">/* Set regulator to normal current mode */</span></div><div class="line">        <a class="code" href="group__group__syspm__functions__power.html#ga54112d6ea4d40ad241923ee7068f5363">Cy_SysPm_SystemSetNormalRegulatorCurrent</a>();</div><div class="line">    }</div><div class="line"></div><div class="line">    <span class="comment">/* Once the regulator is set to normal current mode, current consumption </span></div><div class="line"><span class="comment">    *  can be increased to maximum specification</span></div><div class="line"><span class="comment">    */</span></div><div class="line">    </div></div><!-- fragment --></dd></dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part
<div id="nav-path" class="navpath">
    <ul>
        <li class="footer">
            Generated for <b>MTB CAT1 Peripheral driver library</b> by <b>Cypress Semiconductor Corporation</b>.
            All rights reserved.
        </li>
    </ul>
</div>
-->
</body>
</html>
